var jsonData = null;
var index = 0;
var length = 0;
var timer;
var carpetaVacia = {tbody : '<tr><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr>',
		            tfoot : 'Mostrando 0 carpetas.'};

var eventoVacio = '<tr><td>-</td><td>-</td></tr>';

$(document).ready(function() {
	$(document).keydown(function(e) {
	   var keyCode = e.keyCode || e.which,
	   	   key = {left: 37, right: 39, up: 38, enter: 13};
	   switch (keyCode) {
	   case key.enter:
	   	buscarCliente();
	   	break;
	   case key.left:
	   	anterior();
	   	break;
	   case key.right:
	   	siguiente();
	   	break;
	   case key.up:
		limpiar();
		break;	
	   }
   });
	$('#eventos table').tablesorter();
	$('#carpetas table').paginador();
});

var buscarCliente = function ()  {

	var nombre 			= $("#nombre");
	var numeroDocumento	= $("#numeroDocumento");
	var numeroCuenta 	= $("#numeroCuenta");
	jsonData = null;
	
	if(!nombre.val() && !numeroDocumento.val() && !numeroCuenta.val()){
		alert("Necesitas ingresar algun campo");
		return
	}
	
	var params = nombre.val() + "/" + numeroDocumento.val() + "/" + numeroCuenta.val();
	
	$.getJSON("/fidesrocca/Carpetas/buscarClienteAjax/" + params, function(clientes) {
			nombre.val(clientes[0].nombre);
			numeroDocumento.val(clientes[0].documento);
			numeroCuenta.val(clientes[0].id);
			jsonData = clientes;
			$.each(jsonData, function(index,value) {
				length = index;
			});
			index = 0;
			buscarCarpetas(clientes[0].id);
			buscarEventos(clientes[0].id);
	});
};

var siguiente = function() { 
	
	var nombre 			= $("#nombre");
	var numeroDocumento	= $("#numeroDocumento");
	var numeroCuenta 	= $("#numeroCuenta");
	
	if(jsonData == null)  {
		buscarCliente();
		return false;
	}
	
	if(!jsonData[index+1]) index = -1;
	index++;
	nombre.val(jsonData[index].nombre);
	numeroDocumento.val(jsonData[index].documento);
	numeroCuenta.val(jsonData[index].id);
	
	if (timer) {
		clearTimeout(timer);
	}
	
	timer = setTimeout('buscarEventos(jsonData[index].id);buscarCarpetas(jsonData[index].id);', 700);
	
};

var anterior = function() { 
	 		
	var nombre 			= $("#nombre");
	var numeroDocumento	= $("#numeroDocumento");
	var numeroCuenta 	= $("#numeroCuenta");

	if(jsonData == null)  {
		buscarCliente();
		return false;
	}
	
	if(index == 0) index = length+1;
	index--;
	
	
	nombre.val(jsonData[index].nombre);
	numeroDocumento.val(jsonData[index].documento);
	numeroCuenta.val(jsonData[index].id);

	if (timer) {
		clearTimeout(timer);
	}
	
	timer = setTimeout('buscarEventos(jsonData[index].id);buscarCarpetas(jsonData[index].id);', 700);
	
};

var limpiar = function() { 
	
	$('tbody tr').remove();
	
	var nombre 			= $("#nombre");
	var numeroDocumento	= $("#numeroDocumento");
	var numeroCuenta 	= $("#numeroCuenta");

	jsonData = null;
	nombre.val('');
	numeroDocumento.val('');
	numeroCuenta.val('');
	
	$('#carpetas tbody').append(carpetaVacia.tbody);
	$('#eventos tbody').append(eventoVacio);
	$('table').trigger('update');
	$('#nombre').focus();
};

var buscarCarpetas = function (cliente_id)  {
	
	$.getJSON("/fidesrocca/Carpetas/buscarCarpetasPorClienteAjax/" + cliente_id, function(carpetas) {
		
		
		$('#carpetas tbody tr').remove();
		
		var data = '';
		var cantidadDeCarpetas = 0;
		
		$.each(carpetas, function(index, carpetas) {
			data += '<tr><td>' + carpetas.id + '</td><td>' + 
			                     carpetas.empresas.nombre + '</td><td>' +
								 carpetas.operatorias.nombre + '</td><td>' +
                                 carpetas.cobradores.nombre + '</td><td>' +
                                 carpetas.cod_estado + '</td></tr>';
		});
		
		
		if(data == '') data = carpetaVacia.tbody;
		$('#carpetas tbody').append(data).trigger("update");
	});
};

var buscarEventos = function (cliente_id)  {
	
	$.getJSON("/fidesrocca/Carpetas/buscarLogEntrysPorClienteAjax/" + cliente_id, function(eventos) {
        
		var data = '';
		
		$.each(eventos, function(index, eventos) {
			data += '<tr><td>' + eventos.descripcion + '</td><td>' +
								 eventos.fecha_hora_alta + '</td>-</tr>';
		});
		
		if(data == '') data = eventoVacio;
		$('#eventos tbody tr').remove();
		$('#eventos tbody').append(data);
		$('#eventos table').trigger('update').trigger('sorton',[[[1,1]]]);            	 
	});
};

var paginadorSiguiente = function() {
	
	var intervalo = $('select').val();
};

	